Propojeni s excelem pres OLE - vzorce v bunkach

Otázka od: Mgr. Richard Kotrba

2. 9. 2002 10:50

Prosim o drobnou pomoc s obsluhou excelu z Dephi. Omlouvam se za
pripadnou vlastni tupost:


Je takovyto kod:


var Vzorec : string
      ExcellApp : variant;

begin
.......
  ExcellApp := CreateOleObject('Excel.Application');
.......
.......
  vzorec := ............ (viz nize)
  ExcellApp .WorkBooks[1].WorkSheets[CenikIx].Cells[Radek,7].Formula :=
Vzorec1; /// Tady to NEKDY bouchne
  
end;

Pokud je vzorec nejaky jednoduchy vyraz - soucet / soucin / rozdil
(napr. vzorec:='=$L1*$L10+ $Q10'; ) je vse ok,

Pokud ale potrebuji neco vic a snazim se o podminku
(vzorec:='=KDYŽ($P10<10;$L1*$L10+ $Q10;$P10*$L10+$Q10)';), skonci
prirazeni do formule VZDY stejnou katastrofou "OLE ERROR 800A03EC"

Zkousel jsem ruzne kejkle, ale nic. Excel 2000, Excel XP, ceska mutace.
POkud vyplnim vzorec primo do bunky rucne, je vse OK . Zkousel jsem
prirazovat VZOREC do Value, tataz chyba. Nahrazeni strednku carkami sice
nezpusobi OLE chybu, ale v policku zdanlive vse OK, zobrazi se ale chyba
vyspoctu - je ale nutne policko preulozit primo v Excelu. Delphi6 prof,
SP2

Netusite, prosim nekdo, co to vse znamena popr. jak z toho ven?


Diky

R.K.

---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.384 / Virová báze: 216 - datum vydání: 21.8.2002

Odpovedá: Ladislav Fitz

2. 9. 2002 11:43

kdyz sem si stimhle hral tak sem zjistil ze do bunek se predavaji anglicke
nazvy funkci i kdyz pisu ceske (jednoduse sem zapl nahravani makra a vkladal
sem pozadovane operace) mozna to bude ono

> Prosim o drobnou pomoc s obsluhou excelu z Dephi. Omlouvam se za
> pripadnou vlastni tupost:
>
>
> Je takovyto kod:
>
>
> var Vzorec : string
> ExcellApp : variant;
>
> begin
> .......
> ExcellApp := CreateOleObject('Excel.Application');
> .......
> .......
> vzorec := ............ (viz nize)
> ExcellApp .WorkBooks[1].WorkSheets[CenikIx].Cells[Radek,7].Formula :=
> Vzorec1; /// Tady to NEKDY bouchne
>
> end;
>
> Pokud je vzorec nejaky jednoduchy vyraz - soucet / soucin / rozdil
> (napr. vzorec:='=$L1*$L10+ $Q10'; ) je vse ok,
>
> Pokud ale potrebuji neco vic a snazim se o podminku
> (vzorec:='=KDYŽ($P10<10;$L1*$L10+ $Q10;$P10*$L10+$Q10)';), skonci
> prirazeni do formule VZDY stejnou katastrofou "OLE ERROR 800A03EC"
>
> Zkousel jsem ruzne kejkle, ale nic. Excel 2000, Excel XP, ceska mutace.
> POkud vyplnim vzorec primo do bunky rucne, je vse OK . Zkousel jsem
> prirazovat VZOREC do Value, tataz chyba. Nahrazeni strednku carkami sice
> nezpusobi OLE chybu, ale v policku zdanlive vse OK, zobrazi se ale chyba
> vyspoctu - je ale nutne policko preulozit primo v Excelu. Delphi6 prof,
> SP2
>
> Netusite, prosim nekdo, co to vse znamena popr. jak z toho ven?
>
>
> Diky
>
> R.K.

Odpovedá: Matavovsky Peter

2. 9. 2002 10:42

    Skus pouzit anglicke nazvy pri volani funkcii vo vzorci.

>Prosim o drobnou pomoc s obsluhou excelu z Dephi. Omlouvam se za
>pripadnou vlastni tupost: